/**
 * @param {number[]} encoded
 * @return {number[]}
 */
//  var decode = function(encoded) {
//     let n=encoded.length+1;
//     let d=new Array(encoded.length);
//     d[0]=encoded[0];
//     for(let i=1;i<encoded.length;i++){
//         d[i]=d[i-1]^encoded[i];
//     }
//     let ret=null;
//     for(let j=1;j<=n;j++){
//         let flag=true;
//         for(let e of d){
//             let t=j^e
//             if(t==j||t<1||t>n){
//                 flag=false;
//                 break;
//             }
//         }
//         if(flag){
//             ret=Array.of(j).concat(d.map((e) => j^e));
//         }
//     }
//     return ret;
// };

// 62/63

var decode = function(encoded) {
    let n=encoded.length+1;
    let d=new Array(encoded.length);
    d[0]=encoded[0];
    for(let i=1;i<encoded.length;i++){
        d[i]=d[i-1]^encoded[i];
    }
    let r=(d.reduce((a,b) => a^b))^(new Array(n).fill(1).map((e,index) => index+1).reduce((a,b) => a^b));
    return Array.of(r).concat(d.map((e) => r^e));
};

console.log(decode([6,5,4,6]))

// 执行用时：
// 528 ms
// , 在所有 JavaScript 提交中击败了
// 8.33%
// 的用户
// 内存消耗：
// 71.2 MB
// , 在所有 JavaScript 提交中击败了
// 91.67%
// 的用户